package se.wangs.decorator.abstracttype.decorators;

import se.wangs.decorator.abstracttype.Beverage;
import se.wangs.decorator.abstracttype.CondimentDecorator;

/**
 * -- coding: UTF-8 -- *
 *
 * @author wangs
 * @date 2023/12/11 15:24
 * @description 加了摩卡的饮料（本质就是饮料）
 */
public class Mocha extends CondimentDecorator {

    /**
     * 需要引用一个基本类型变量，在之后装饰过程中作为上下文信息
     * 这个 beverage 变量其实是具体的 beverages 中的某一项
     * 指代具体的饮料
     */
    protected Beverage beverage;

    // 通过构造器注入“上下文”
    public Mocha(Beverage beverage) {
        this.beverage = beverage;
    }

    @Override
    public String getName() {
        return beverage.getName() + ", Mocha";
    }

    @Override
    public double cost() {
        // 加上Mocha的单价
        return beverage.cost() + 0.20;
    }
}
